const express = require('express');

const bobyParser = require('body-parser');
const cors = require('cors');
const app = express();
const initUtils = require('./init');
// __dirname  当前文件夹的绝对路径
app.use(cors());
app.use(bobyParser.json());
app.use(bobyParser.urlencoded({ extended: true }));
const { DB } = require('./database/DBinit'); // 引入数据库
const main = require('./router/index.js');
// 为 main 匹配路由地址
app.use('/api', (req, res) => {
  // 在这里处理token 问题
  // 设置请求头
  // res.header('Authorization', '加密参数');

  main(req, res);
});
// 匹配路由，若匹配不到，则找不到
app.get('/', (req, res) => {
  res.send({
    errcode: 1,
    msg: 'not fount',
  });
});
// 开启静态资源服务
app.use(express.static(__dirname));

DB.sync()
  .then(() => {
    console.log('数据库同步成功');
  })
  .catch(error => {
    console.error('数据库同步失败:', error);
  });

// 监听8888端口
app.listen(8888, () => {
  // 开启服务
  console.log('服务开启成功');
  console.log('服务器运行与:8888端口');
});

// 执行迁移
async function runMigrations() {
  // 创建迁移
  await DB.sync({ force: false });
  console.log('同步成功');
  // 其他业务逻辑

  // 初始化管理员账号
  initUtils.initAdmin(); // 初始化管理员账号
  initUtils.initMicro(); // 初始化微应用
}

runMigrations().catch(err => {
  console.error('迁移过程中发生错误:', err);
});
